What is @turf/dissolve?
@turf/dissolve is a module in the Turf.js library that allows you to merge adjacent or overlapping polygons into a single polygon. This is particularly useful in geographic information systems (GIS) for simplifying complex polygonal data.
What are @turf/dissolve's main functionalities?
Dissolve Polygons
This feature allows you to merge multiple polygons into a single polygon. The code sample demonstrates how to create a collection of polygons and then dissolve them into one polygon using the @turf/dissolve module.
const turf = require('@turf/turf');
const polygons = turf.featureCollection([
turf.polygon([[
[-70.603637, -33.399918],
[-70.614624, -33.395332],
[-70.639343, -33.392466],
[-70.659942, -33.394759],
[-70.683975, -33.404504],
[-70.697021, -33.419406],
[-70.701141, -33.434306],
[-70.700454, -33.446339],
[-70.694274, -33.458369],
[-70.682601, -33.465816],
[-70.668869, -33.472117],
[-70.646209, -33.473835],
[-70.624923, -33.472117],
[-70.609817, -33.468107],
[-70.595397, -33.458369],
[-70.587158, -33.442901],
[-70.587158, -33.426283],
[-70.590591, -33.414248],
[-70.594711, -33.406224],
[-70.603637, -33.399918]
]]),
turf.polygon([[
[-70.604705, -33.396344],
[-70.629425, -33.392466],
[-70.641098, -33.396344],
[-70.652771, -33.401084],
[-70.661697, -33.410803],
[-70.666504, -33.421617],
[-70.666504, -33.432428],
[-70.661697, -33.443237],
[-70.652771, -33.453045],
[-70.641098, -33.457784],
[-70.629425, -33.457784],
[-70.617752, -33.453045],
[-70.607452, -33.443237],
[-70.604705, -33.432428],
[-70.604705, -33.421617],
[-70.604705, -33.410803],
[-70.604705, -33.396344]
]])
]);
const dissolved = turf.dissolve(polygons);
console.log(JSON.stringify(dissolved));
Other packages similar to @turf/dissolve
jsts
JSTS (JavaScript Topology Suite) is a JavaScript library for processing and analyzing planar geometric objects. It provides similar functionalities to @turf/dissolve, such as union, intersection, and difference operations on polygons. However, JSTS is a more comprehensive library for geometric operations and may have a steeper learning curve.
martinez-polygon-clipping
Martinez Polygon Clipping is a library for performing boolean operations on polygons, such as union, intersection, and difference. It is highly efficient and can handle complex polygonal data. While it provides similar functionalities to @turf/dissolve, it is more focused on boolean operations rather than general GIS tasks.
@turf/dissolve
dissolve
Dissolves a FeatureCollection of polygons based on a property. Note that multipart features within the collection are not supported
Parameters
featureCollection
FeatureCollection<Polygon> input feature collection to be dissolved
propertyName
[string] property name on which to dissolve features
Examples
var features = turf.featureCollection([
turf.polygon([[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]], {"combine": "yes"}),
turf.polygon([[[0, -1], [0, 0], [1, 0], [1, -1], [0,-1]]], {"combine": "yes"}),
turf.polygon([[[1,-1],[1, 0], [2, 0], [2, -1], [1, -1]]], {"combine": "no"}),
]);
var dissolved = turf.dissolve(features, 'combine');
var addToMap = [features, dissolved]
Returns FeatureCollection<Polygon> a FeatureCollection containing the dissolved polygons
This module is part of the Turfjs project, an open source
module collection dedicated to geographic algorithms. It is maintained in the
Turfjs/turf repository, where you can create
PRs and issues.
Installation
Install this module individually:
$ npm install @turf/dissolve
Or install the Turf module that includes it as a function:
$ npm install @turf/turf